/**
 * Copyright(c) 2013 Jade Techonologies Co., Ltd.
 *
 * History:
 *   14-7-31 下午3:59 Created by dwzhang
 */
package com.jade.framework.base.comm;

/**
 * 协议处理器。具体协议根据具体情况，进行连接建立、连接断开、新消息以及异常错误的处理。
 *
 * @author dwzhang
 * @version 1.0 14-7-31 下午3:59
 */
public interface ProtocolHandler
{
    /**
     * 连接建立时间。
     *
     * @param session 连接Session.
     */
    public void connected(ProtocolSession session);

    /**
     * 连接空闲时间超过指定的时间。
     *
     * @param session 连接Session.
     */
    public void idle(ProtocolSession session);

    /**
     * 连接断开。
     *
     * @param session 连接Session.
     */
    public void disconnected(ProtocolSession session);

    /**
     * 接收到消息。
     *
     * @param session 连接session
     * @param message 收到的消息
     */
    public void received(ProtocolSession session, Object message);

    /**
     * 出错处理器。
     *
     * @param session 连接Session,可能为null.
     * @param t       出错异常
     */
    public void caught(ProtocolSession session, Throwable t);
}
